package com.yiwenup.leetcode.daily;

/**
 * 文件描述
 *
 * @Project struct-algorithm
 * @Package com.yiwenup.leetcode.daily
 * @Author yiwenup
 * @Date 2024-12-03 09:48:57
 * @Description https://leetcode.cn/problems/check-if-two-chessboard-squares-have-the-same-color/description/?envType=daily-question&envId=2024-12-03
 *
 * <pre>
 *     给你两个字符串 coordinate1 和 coordinate2，代表 8 x 8 国际象棋棋盘上的两个方格的坐标。
 *     如果这两个方格颜色相同，返回 true，否则返回 false。
 *     坐标总是表示有效的棋盘方格。坐标的格式总是先字母（表示列），再数字（表示行）。
 * </pre>
 * <pre>
 *     输入： coordinate1 = "a1", coordinate2 = "c3"
 *     输出： true
 *     解释：两个方格均为黑色。
 * </pre>
 * <pre>
 *     输入： coordinate1 = "a1", coordinate2 = "h3"
 *     输出： false
 *     解释：方格 "a1" 是黑色，而 "h3" 是白色。
 * </pre>
 * <pre>
 *     coordinate1.length == coordinate2.length == 2
 *     'a' <= coordinate1[0], coordinate2[0] <= 'h'
 *     '1' <= coordinate1[1], coordinate2[1] <= '8'
 * </pre>
 */
public class No3274 {

    public boolean checkTwoChessboards(String coordinate1, String coordinate2) {
        return (coordinate2.charAt(1) - coordinate1.charAt(1) + coordinate2.charAt(0) - coordinate1.charAt(0)) % 2 == 0;
    }

    public boolean checkTwoChessboards1(String coordinate1, String coordinate2) {
        char col1 = coordinate1.charAt(0);
        char row1 = coordinate1.charAt(1);
        char col2 = coordinate2.charAt(0);
        char row2 = coordinate2.charAt(1);
        int col = col2 - col1;
        int row = row2 - row1;

        if (col == row) {
            return true;
        }

        if (row % 2 != 0 && col % 2 != 0) {
            return true;
        }

        if (row % 2 == 0 && col % 2 == 0) {
            return true;
        }

        return false;
    }
}
